In the present times, telecommunication systems manage the transmission of huge flows of information with great flexibility. Moreover, current telecommunication systems have the capability of handling multiple multimedia services (such as voice, video and text signals) in a simultaneous way, as in the case of the well known Universal Mobile Telecommunications System (UMTS) standard. For this purpose, a typical approach provides for time-multiplexing said multiple and simultaneous services together onto a single physical channel. Moreover, channel coding schemes are applied to protect the flow of information from corruption effects caused by fading channels. According to said channel coding schemes, an increased quantity of data is delivered to the physical channel even if its bandwidth is limited by regulatory bodies due to spectrum limitations. At this level it is therefore often necessary to adapt the encoded data rate to the rate available at the physical level, trying to maintain a certain Quality of Service (QoS), as required by the nature itself of the service. This functionality is provided by the so called “rate matching” process by which each service is treated separately in order to “match” the throughput adaptation and the QoS compliance. More particularly, the rate matching is a coordinate process that matches the bits of the data flows associated with the different services to the bits available on the physical channel during each transmission period. This is achieved through removal and/or addition of bits carried out following predetermined pattern algorithms.
The operations performed during the rate matching process on the bits of the various data flows often require the use of memory devices. More particularly, the removal and/or the addition of bits from/to each data flow includes a plurality of steps, usually accomplished through multiple and dedicated memory areas. In detail, before the rate matching operations are performed on the various data flows, a first memory area is typically used for storing the bits thereof; the rate matching operations are then performed on copies of said bits stored in further memory areas, each one being adapted to store the intermediate results of a particular step of the rate matching process.
However, this approach is often not optimal, particularly for portable telecommunications apparatuses. Indeed, the use of multiple memory areas may be excessively expensive, both in terms of occupied silicon area and electric power consumption. The presence of multiple dedicated memory areas also requires a complex management thereof. For example, at each step of the rate matching process, bits have to be copied to a further memory area. All these copying operations involve processing periods that are relatively short. However, when the number of data flows is high, and when each data flow has a high bit rate, the total time required for performing all the copying operations may be intolerable.